// #include <iostream>
// #include<string>
//
// using namespace std;
// //类模版的特化
// //处理自定义类型
//
//
// //类模版特化
// //局部特化 完全特化
// template<typename T1,typename T2>
// class my_pair
// {
// public:
//     my_pair(T1 first,T2 second):first(first),second(second)
//     {
//         cout<< "T1,T2" << endl;
//     }
// protected:
//     T1 first;
//     T2 second;
// };
//
// //类模版特化
// //局部特化 完全特化
// //特殊化处理 两个未知类型的模版 一个未知类型的模版
// template<typename T1>
// class my_pair<T1,T1>
// {
// public:
//     my_pair(T1 first,T1 second):first(first),second(second)
//     {
//         cout<< "T1,T1" << endl;
//     }
//
// protected:
//     T1 first;
//     T1 second;
// };
//
// //完全特化
// template<>
// class my_pair<int,int>
// {
// public:
//     my_pair(int first,int second):first(first),second(second)
//     {
//         cout<< "T1,T1" << endl;
//     }
//
// protected:
//     int first;
//     int second;
// };
//
// template<typename  T1,int size>
// class my_array
// {
// public:
//     T1* memory;
//     int count;
// };
//
//
// int main()
// {
//     my_pair<int,int>object(1,2);
//     my_array<int,5> arr;
//
//     //数对类型
//     pair<int,string> oo;
//     oo.first=123;
//     oo.second="afasdf";
//
//     pair<string,string> pair_data("a","b");
//     pair<string,string> value  = make_pair<string,string>("a","b");
//
//     return 0;
//
//
// }
